// ======================================================
//     Copyright (c) 2009 METARACE  All rights reserved.
//    
//     The use and distribution terms for this software are contained in the file
//     named license.txt, which can be found in the root of this distribution.
//     By using this software in any fashion, you are agreeing to be bound by the
//     terms of this license.
//    
//     You must not remove this notice, or any other, from this software.
// ======================================================
using System;

namespace Toulr.Util.Logging
{
    #region

    

    #endregion

    /// <summary>
    /// 
    /// </summary>
    /// Author     :James Cheung
    /// MachineName:HJZHANG@METARNE-HJZHANG
    /// DateTime   :2009-1-21 17:05
    public interface IContextStack
    {
        /// <summary>
        /// Gets the count.
        /// </summary>
        /// <value>The count.</value>
        /// Author     :James Cheung
        /// MachineName:HJZHANG@METARNE-HJZHANG
        /// DateTime   :2009-1-21 17:05
        int Count { get; }
        /// <summary>
        /// Clears this instance.
        /// </summary>
        /// Author     :James Cheung
        /// MachineName:HJZHANG@METARNE-HJZHANG
        /// DateTime   :2009-1-21 17:05
        void Clear();
        /// <summary>
        /// Pops this instance.
        /// </summary>
        /// <returns></returns>
        /// Author     :James Cheung
        /// MachineName:HJZHANG@METARNE-HJZHANG
        /// DateTime   :2009-1-21 17:05
        string Pop();
        /// <summary>
        /// Pushes the specified message.
        /// </summary>
        /// <param name="message">The message.</param>
        /// <returns></returns>
        /// Author     :James Cheung
        /// MachineName:HJZHANG@METARNE-HJZHANG
        /// DateTime   :2009-1-21 17:05
        IDisposable Push(string message);
    }
}